package com.yesorno.utils;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;

public class BitmapUtils {

	public static int cornerSize = 5;// px

	/**
	 * 从资源中获取对应的bitmap
	 * 
	 * @param context
	 * @param resourceId
	 * @return
	 */
	public static Bitmap getBitmapFromResource(Context context, int resourceId) {
		return BitmapFactory.decodeResource(context.getResources(), resourceId);
	}

	/**
	 * 从网络中获取对应的bitmap
	 * 
	 * @param context
	 * @param url
	 * @return
	 */
	public static Bitmap getBitmapFromHttp(Context context,String url) {
		return HttpUtils.returnBitMap(context,url);
	}

	/**
	 * 对位图进行圆角处理
	 * 
	 * @param bitmap
	 * @return
	 */
	public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
		return getRoundedCornerBitmap(bitmap, cornerSize);
	}

	/**
	 * 对位图进行圆角处理
	 * 
	 * @param bitmap
	 * @param cornerSize
	 * @return
	 */
	public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int cornerSize) {
		Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
				bitmap.getHeight(), Config.ARGB_8888);
		Canvas canvas = new Canvas(output);

		final int color = 0xff424242;
		final Paint paint = new Paint();
		final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
		final RectF rectF = new RectF(rect);
		final float roundPx = cornerSize;

		paint.setAntiAlias(true);
		canvas.drawARGB(0, 0, 0, 0);
		paint.setColor(color);
		canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

		paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
		canvas.drawBitmap(bitmap, rect, rect, paint);

		return output;
	}
}
